The invention relates to a data processing device for processing information datagrams from multiple data streams.
A composite transport stream of video information of the type broadcast for home use, usually via satellite or cable, comprises a number of data streams, each data stream corresponding to a channel. Each data stream is transmitted in blocks, which are commonly known as datagrams. This means that instead of each channel being transmitted as a whole, datagrams from each channel are transmitted at time intervals and may be multiplexed with datagrams from some or all of the other channels. These datagrams are generally received by the user""s personal set top box (STB), which records the datagrams, and then reassembles and re-transmits to other equipment, such as a television or video recorder, the channel which has been selected by the user. The set top box comprises a demultiplexor which selects the datagrams from the channel which has been selected by the user, thus allowing datagrams of the correct channel to be re-assembled and re-transmitted to the user apparatus. The STB may use a hard disk drive to store the data.
The standard most widely used in Europe for video and audio transmission, and for certain other types of data, is the DVB System. Under this system, the composite transport stream is called a DVB stream and the datagrams are in the form of packets conveying MPEG2 data. An MPEG2 frame comprises a number of packets. These packets comprise a payload, which is the actual video or audio data, and a header that contains information, such as an indication of the data stream of which the packet forms part and timing information. A typical DVB stream will contain a number of video and audio channels, along with subtitles, teletext, information on program schedules, information for conditional access used for pay-TV, and tables which show how to combine different parts of these features to provide any of the possible services. For example, the tables could tell the user how to pay for and record a particular pay-programme at a particular time.
In order for the user to record or view a given channel transmitted inside a given DVB stream, the STB software must find the system information relating to that channel, which will give the identifiers of the video packets, the audio packets, teletext and timing information which can be used to reassemble the channel within the STB. After being reassembled and processed into a video stream, the channel is sent on to the appropriate apparatus, such as a video or television.
STB systems currently available on the market are designed to process the incoming data and send it straight on to the user apparatus, thus avoiding the need for large amounts of data storage capacity. It would be advantageous to the user for the STB system to have the capability of delayed playback, so that a particular channel could be viewed at a time after it was broadcast. In other words the STB would be acting as a digital video recorder. A typical composite transport stream is around 5Mbytes/sec of data, so good quality digital record and replay takes at least 10Mbytes/sec transfer rate between the datagram processing apparatus and the storage unit (e.g. hard disk drive). This rate is generally beyond the capability of the typical low-cost hard disk drives in use today.
It would be desirable to provide a system capable of reducing the required transfer rate, whereby the need for the user to invest in expensive, high-memory capability hard disk drives may be avoided. Ideally such a system would be usable with a standard set-top box.
According to the present invention there is provided a data stream processing device for processing a succession of information datagrams from multiple data streams, each datagram comprising a payload and an identifier identifying the data stream of which the datagram forms part, the device comprising: a storer for storing an indication of which of the data streams are required for use; a memory; and a datagram processor connected to the storer and the memory and arranged for: receiving incoming datagrams, reading the identifiers of received datagrams and thereby identifying the data stream of which each datagram forms part, and storing in the memory received datagrams that form part of a data stream required for use, and if successively received datagrams that form part of a data stream required for use are interspersed by one or more received datagrams that do not form part of a data stream required for use, storing an indication of the spacing between the said successively received datagrams, and for each received datagram that does not form part of a data stream required for use forming a modified datagram comprising the identifier of the datagram that does not form part of a data stream required for use and excluding at least part of the payload of that datagram, and storing the modified datagram in the memory.
Advantageously the modified datagram contains timing information. Conveniently this timing information is derived from the payload of the respective datagram and is indicative of the relative timing of the said successive datagrams.
Preferably in order to store the said indication of the spacing the datagram processor is arranged to store in the memory the number of received datagrams that do not form part of a data stream required for use that intersperse the said successively received datagrams.
Preferably the data stream processing device further comprises a retrieving unit for retrieving from the memory the stored datagrams that form part of a data stream required for use, and outputting those datagrams at a spacing according to stored indications of spacings. Advantageously the output datagrams that form part of a data stream required for use are interspersed by a number of further output datagrams. Conveniently the retrieving unit generates the said further output datagrams by retrieving the modified datagrams from the memory and adding a dummy payload to them. Alternatively the retrieving unit could generate the said further datagrams by forming the said number of dummy datagrams. Suitably the further datagrams are configured so as to be discarded by a subsequent receiver.
Alternatively the retrieving unit is capable of being configured to output the stored datagrams that form part of a data stream that is required for use with no datagrams between them.
Usefully the retrieving unit is operable in response to a request by a user to begin retrieval of datagrams.
Preferably the data stream processing device further comprises a transmitter for transmitting the output datagrams from the data stream processing device. Advantageously the transmitter is connectable to a set top box for outputting the datagrams thereto.
It is further preferable that the data stream processing device is in the form of a module for use with a set top box.
The datagrams which are transmitted to the data stream processing device may comprise DVB, DSS or ATSC transport data packets.